/*
 *******************************************************************************
 * @ProjectName 中国航信  DIT(国际运价前端管理系统)
 * @FileName	QueryBaseDao.java
 * @package		com.travelsky.gds.fare.bamboo.engine.dao
 * @author		HuangFeng
 * @Date		2017年9月30日 上午10:36:59
 * @version		1.0
 * @Company		中国民航信息网络股份有限公司
 * @Copyright	Copyright (c) 2016
 * @description 
 *******************************************************************************
 */
package com.travelsky.server.jdbc;

import java.sql.Connection;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import com.travelsky.server.vo.group.Config;
import com.travelsky.server.vo.group.ProjectGroup;
import com.travelsky.server.vo.group.User;

/**
 * 数据查询类
 ******************************************
 * @author HuangFeng  [2017年9月30日 上午10:36:59]
 * @version 1.0
 ******************************************
 */
public class Dao extends QueryRunner{
	
	/**
	 * 构造函数
	 ******************************************
	 * @author HuangFeng [2017年9月30日 上午10:43:36]
	 * @version 1.0
	 ******************************************
	 */
	public Dao() {}
	
	/**
	 * 查询所有项目组信息
	 ******************************************
	 * @author HuangFeng [2017年10月29日 下午9:06:50]
	 * @version 1.0
	 ******************************************
	 * @return 集合
	 */
	public List<ProjectGroup> queryAllProjectGroup(){
		List<ProjectGroup> result = null;
		try {
			Connection con = JdbcUtil.getConnection();
			String sql = "select * from projectgroup";
			result = query(con,sql, new BeanListHandler<ProjectGroup>(ProjectGroup.class));
			for (ProjectGroup projectGroup : result) {
				List<User> user = queryUserByGroupId(projectGroup.getId(),con);
				projectGroup.setUsers(user);
			}
			JdbcUtil.releaseConnection(con);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

	/**
	 * 通过项目组下所有用户
	 ******************************************
	 * @author HuangFeng [2017年10月29日 下午5:50:21]
	 * @version 1.0
	 ******************************************
	 * @param groupid 项目组ID
	 * @return 集合
	 */
	private List<User> queryUserByGroupId(String groupid,Connection con) {
		List<User> result = null;
		try {
			String sql = "select * from user u where u.groupid=?";
			result = query(con , sql, new BeanListHandler<User>(User.class) ,groupid);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

	/**
	 * 查询项目组配置
	 ******************************************
	 * @author HuangFeng [2017年10月29日 下午9:06:23]
	 * @version 1.0
	 ******************************************
	 * @param groupName 项目组名
	 * @return 配置
	 */
	public Config queryConfigByGroupName(String groupName) {
		Config result = null;
		try {
			Connection con = JdbcUtil.getConnection();
			String sql = "select * from config c where c.groupname=?";
			result = query(con , sql, new BeanHandler<Config>(Config.class) ,groupName);
			JdbcUtil.releaseConnection(con);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

}
